/**
 * 524. 通过删除字母匹配到字典里最长单词
 * @link https://leetcode-cn.com/problems/longest-word-in-dictionary-through-deleting/
 * 给定字符串 s 和字符串数组 dictionary，找出并返回 dictionary 中最长的字符串，
 * 该字符串可以通过删除 s 中的某些字符得到
 *
 * @param {string} s
 * @param {string[]} dictionary
 * @return {string}
 */
var findLongestWord = function (s, dictionary) {
    dictionary.sort((a, b) => {
        // 按照字符串长度从长到短排序
        if (a.length !== b.length) {
            return b.length - a.length;
        }

        // 同等长度字符串，按照字典序排序
        return a.localeCompare(b);
    });

    for (let d of dictionary) {
        let i = 0;
        let j = 0;

        while (i < s.length && j < d.length) {
            if (s[i] === d[j]) {
                j++;
            }
            i++;
        }

        if (j === d.length) {
            return d;
        }
    }

    return '';
};
